
07.01.2015, 09:16
|
Интересующийся
|
|
Регистрация: 07.01.2015
Сообщений: 11
|
|
Оптимизация кода
есть рабочий код:
$(document).ready(function(){
$('body').on('click','.song', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "/cont/song.php",
data: "id="+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, "?option=main&cont=song&id="+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
return false;
});
});
Хочу его улучшить, т.к. подобных функций в файле несколько. Сделал так, но не работает. Помогите найти ошибку:
var post_url;
var data_id;
var hist_url;
var clkid;
$(document).ready(function(){
$('body').on('click','song', function(){
post_url = '/cont/song.php';
data_id = 'id=';
hist_url = '?option=main&cont=song&id=';
clkid = this.id;
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
function post_act(){
$.ajax({
type: "POST",
url: post_url,
data: data_id+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, hist_url+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
}
|
|

07.01.2015, 09:23
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
function post_act(post_url,data_id,hist_url,clkid){
|
|

07.01.2015, 16:27
|
Интересующийся
|
|
Регистрация: 07.01.2015
Сообщений: 11
|
|
Сделал. Не работает. Просто обновляет страницу... 
|
|

07.01.2015, 16:42
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
erilar,
Хм, а первый код работает ? Дайте ссылку на пример
|
|

07.01.2015, 17:01
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Точки нет:
$('body').on('click','.song', function()
|
|

07.01.2015, 17:17
|
Интересующийся
|
|
Регистрация: 07.01.2015
Сообщений: 11
|
|
Спасибо Вам огромное! Такая мелочь. Всё заработало.
Может дадите совет, как оптимизировать ещё код лучше? 
|
|

07.01.2015, 17:22
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
erilar,
Честно говоря я не увидел оптимизации
Код - вырос
Четыре переменных стали мусорить в документ, вместо ранее скрытого в теле $(document).ready(function(){
Читабельность кода - снизилась, ибо переменные повторяются вместо одного раза - трижды и их все нужно логически согласовывать меж собой
|
|

07.01.2015, 17:25
|
 |
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Сообщение от erilar
|
Может дадите совет, как оптимизировать ещё код лучше?
|
$(window).on('click', '.song', function(){
var id = this.id;
$('#loader').show();
$.post('/cont/song.php', {id: id}, function(html) {
$('section').html(html);
history.pushState(null, null, '?option=main&cont=song&id=' + id);
$('#loader').hide();
window.scrollTo(0,580);
});
return false;
});
|
|

07.01.2015, 17:41
|
Интересующийся
|
|
Регистрация: 07.01.2015
Сообщений: 11
|
|
Сообщение от Deff
|
erilar,
Честно говоря я не увидел оптимизации
Код - вырос
Четыре переменных стали мусорить в документ, вместо ранее скрытого в теле $(document).ready(function(){
Читабельность кода - снизилась, ибо переменные повторяются вместо одного раза - трижды и их все нужно логически согласовывать меж собой
|
До того код был таким:
$(document).ready(function(){
$('body').on('click','.nav', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "/cont/main.php",
data: "crs="+clkid,
success: function(data){
$("section").html(data);
history.replaceState(null, null, "?option=main&cont="+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
return false;
});
});
$(document).ready(function(){
$('body').on('click','.view', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "../../cont/view.php",
data: "id_text="+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, "?option=main&cont=view&id_text="+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
return false;
});
});
$(document).ready(function(){
$('body').on('click','.g_news', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "../../cont/group_news.php",
data: "page="+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, "?option=main&cont=group_news&page="+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
return false;
});
});
$(document).ready(function(){
$('body').on('click','.a_news', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "../../cont/all_news.php",
data: "page="+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, "?option=main&cont=all_news&page="+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
return false;
});
});
$(document).ready(function(){
$('body').on('click','.disk', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "/cont/disk.php",
data: "id="+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, "?option=main&cont=disk&id="+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
return false;
});
});
$(document).ready(function(){
$('body').on('click','.del_wall', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "/cont/profile.php",
data: "id_val="+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, "?option=main&cont=profile");
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
return false;
});
});
$(document).ready(function(){
$('body').on('click','.song', function(){
var clkid = this.id;
$.ajax({
type: "POST",
url: "/cont/song.php",
data: "id="+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, "?option=main&cont=song&id="+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
return false;
});
});
Стал таким:
var post_url;
var data_id;
var hist_url;
var clkid;
function post_act(post_url,data_id,hist_url,clkid){//$_POST
$.ajax({
type: "POST",
url: post_url,
data: data_id+clkid,
success: function(html){
$("section").html(html);
history.pushState(null, null, hist_url+clkid);
},beforeSend: function(){
$("#loader").css("display", "block");
}
}).done(function(data){
$("#loader").css("display", "none");
window.scrollTo(0,580);
});
}
$(document).ready(function(){//загрузка Главного контента
$('body').on('click','.nav', function(){
post_url = "/cont/main.php";
data_id = "crs=";
hist_url = '?option=main&cont=';
clkid = this.id;
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
$(document).ready(function(){//загрузка Полной новости
$('body').on('click','.view', function(){
post_url ="../../cont/view.php";
data_id ="id_text=";
hist_url ="?option=main&cont=view&id_text=";
clkid =this.id;
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
$(document).ready(function(){//Следующие новости Группы
$('body').on('click','.g_news', function(){
post_url ="../../cont/group_news.php";
data_id ="page=";
hist_url ="?option=main&cont=group_news&page=";
clkid =this.id;
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
$(document).ready(function(){//Следующие Все новости
$('body').on('click','.a_news', function(){
post_url ="../../cont/all_news.php";
data_id ="page=";
hist_url ="?option=main&cont=all_news&page=";
clkid =this.id;
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
$(document).ready(function(){//Загрузка тесков песен
$('body').on('click','.song', function(){
post_url = '/cont/song.php';
data_id = 'id=';
hist_url = '?option=main&cont=song&id=';
clkid = this.id;
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
$(document).ready(function(){//Дискография
$('body').on('click','.disk', function(){
post_url ="/cont/disk.php";
data_id ="id=";
hist_url ="?option=main&cont=disk&id=";
clkid =this.id;
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
$(document).ready(function(){//загрузка ФотоАльбома
$('body').on('click','.gallery', function(){
post_url ="/cont/gall.php";
data_id ="gall=";
hist_url ="?option=main&cont=gall&gall=";
clkid =this.id;
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
$(document).ready(function(){//Удаление сообщения со стены
$('body').on('click','.del_wall', function(){
post_url ="/cont/profile.php";
data_id ="id_val=";
hist_url ="?option=main&cont=profile";
clkid ="";
post_act(post_url,data_id,hist_url,clkid);
return false;
});
});
Последний раз редактировалось erilar, 07.01.2015 в 17:44.
|
|

07.01.2015, 17:45
|
Интересующийся
|
|
Регистрация: 07.01.2015
Сообщений: 11
|
|
И загружаться стало даже быстрее.
|
|
|
|